package top.aigoo.project01.service;

import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import top.aigoo.project01.entity.Product;
import top.aigoo.project01.entity.dto.ImageHolder;
import top.aigoo.project01.entity.dto.ProductExecution;


import java.util.List;

/**
 * @Description: product
 * @Author: Mr.OYSHUO.欧阳大叔  mail:1642302522@qq.com
 * @Version 1.0.0
 * @Date: 2021/8/27 22:48
 */
public interface ProductService {

    /**
     * 根据商品id获取商品信息
     * @param productId
     * @return
     */
    Product getProductById(long productId);
    /**
     * 查询商品列表并分页，可输入的条件有：商品名（模糊），商品状态，店铺Id,商品类别
     * @param productCondition
     * @param pageIndex
     * @param pageSize
     * @return
     */
    ProductExecution getProductList(Product productCondition, int pageIndex, int pageSize);
    /**
     * 添加商品信息以及图片处理
     * 这个接口主要逻辑是
     * 1、处理缩略图
     * 2、处理商品详情图列表
     * 3、添加商品信息
     * @param  product 要处理的商品
     * @param thumbnail 缩略图
     * @param product 产品详情图片列表
     */
    ProductExecution addProduct(Product product, ImageHolder thumbnail,
                                List<ImageHolder> productImgList) throws RuntimeException;
    /**
     * 修改商品信息以及图片处理
     * @param product
     * @param thumbnail
     * @param productImgs
     * @return
     */
    ProductExecution modifyProduct(Product product, CommonsMultipartFile thumbnail,
                                   List<CommonsMultipartFile> productImgs);
}
